www.gusucode.com > VC 串口通讯_数据库存取例子-源码程序 > VC 串口通讯_数据库存取例子-源码程序/code/Modem3/Modem3Dlg.cpp
//Download by http://www.NewXing.com // Modem3Dlg.cpp : implementation file // #include "stdafx.h" #include "Modem3.h" #include "Modem3Dlg.h" #include "BehaoDialog.h" #include "ListDialog.h" #include "JxDialog.h" #include "ZhiLengDialog.h" #include "ZhiReDialog.h" #include "TimeDialog.h" #include "RongyebengDialog.h" #include "LishiDialog.h" #include "JiebingDialog.h" #include "BuchangDialog.h" #include "ReshueiDialog.h" #include "NenghaoDialog.h" #include "ShineijiDialog.h" #include <math.h> #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About UINT CModem3Dlg:: ThreadFunc(LPVOID pParam) //辅助线程 { ((CModem3Dlg*)pParam)->communcation(); ((CModem3Dlg*)pParam)->addRecordset(); return 0; } class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) public: //virtual BOOL OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pLResult); //virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); //virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CModem3Dlg dialog CModem3Dlg::CModem3Dlg(CWnd* pParent /*=NULL*/) : CDialog(CModem3Dlg::IDD, pParent) { //{{AFX_DATA_INIT(CModem3Dlg) m_ktsin = 0.0f; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 int i; m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON14); m_brush1.CreateSolidBrush(RGB(255,0,0)); m_brush2.CreateSolidBrush(RGB(255,255,255)); m_brush3.CreateSolidBrush(RGB(125,125,125)); m_brush4.CreateSolidBrush(RGB(0,235,0)); m_high=0; add=0; abb=0; m_kzfs=0; m_gzzt=0; ye1=ye2=0; m_str="拨号"; draw_flag=0; send_flag=0; send_over=1; send_owner=1; shiwaiji_owner_no=1; shineiji_owner_no=1; reshueiguan_owner_no=1; shiwaiji_xuanze=1; time_over=0; m_count=0; m_long=0; receive_flag=0; for(i=0;i<16;i++) a_flag[i]=0; m_ktkbut.button_flag=0; m_ktgbut.button_flag=0; m_rskbut.button_flag=0; m_rsgbut.button_flag=0; m_resetflag=0; m_reset.SetFlag(0); for(i=0;i<16;i++) b_flag[i]=255; send_timer=0; m_Minute=0; //缓冲区发送完标志 } void CModem3Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CModem3Dlg) DDX_Control(pDX, IDC_STATICPBSF, m_pbsf); DDX_Control(pDX, IDC_STATICPPSF, m_ppsf); DDX_Control(pDX, IDC_STATICPLRF, m_plrf); DDX_Control(pDX, IDC_STATICPLJF, m_pljf); DDX_Control(pDX, IDC_STATICPRSRSJ, m_prsrsj); DDX_Control(pDX, IDC_STATICPRSB, m_prsb); DDX_Control(pDX, IDC_STATICPRSJ, m_prsj); DDX_Control(pDX, IDC_STATICPRYB, m_pryb); DDX_Control(pDX, IDC_STATICPLQFJ, m_plqfj); DDX_Control(pDX, IDC_STATICPLJB, m_pljb); DDX_Control(pDX, IDC_STATICPZKB, m_pzkb); DDX_Control(pDX, IDC_STATICPLQB, m_plqb); DDX_Control(pDX, IDC_STATICPKTSB, m_pktsb); DDX_Text(pDX, IDC_KTSIN, m_ktsin); DDX_Control(pDX, IDC_KTKBUT, m_ktkbut); DDX_Control(pDX, IDC_KTGBUT, m_ktgbut); DDX_Control(pDX, IDC_RSKBUT, m_rskbut); DDX_Control(pDX, IDC_RSGBUT, m_rsgbut); DDX_Control(pDX, IDC_RESET, m_reset); DDX_Control(pDX, IDC_ZHILENG, m_zhileng); DDX_Control(pDX, IDC_ZHIRE, m_zhire); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CModem3Dlg, CDialog) //{{AFX_MSG_MAP(CModem3Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_CTLCOLOR() ON_COMMAND(ID_BEHAO, OnBehao) ON_WM_TIMER() ON_BN_CLICKED(IDC_LSGZ, OnLsgz) ON_COMMAND(ID_ZJTS, OnZjts) ON_UPDATE_COMMAND_UI(ID_ZJTS, OnUpdateZjts) ON_UPDATE_COMMAND_UI(ID_BJTS, OnUpdateBjts) ON_COMMAND(ID_AUTO, OnAuto) ON_BN_CLICKED(IDC_KTSBOPEN,OnKtsbopen) ON_BN_CLICKED(IDC_KTSBCLOSE,OnKtsbclose) ON_BN_CLICKED(IDC_LQBDISUOPEN,OnLqbdisuopen) ON_BN_CLICKED(IDC_LQBCLOSE,OnLqbclose) ON_BN_CLICKED(IDC_LQFJDISUOPEN,OnLqfjdisuopen) ON_BN_CLICKED(IDC_LQFJCLOSE,OnLqfjclose) ON_BN_CLICKED(IDC_LJBOPEN,OnLjbopen) ON_BN_CLICKED(IDC_LJBCLOSE,OnLjbclose) ON_BN_CLICKED(IDC_ZKBOPEN,OnZkbopen) ON_BN_CLICKED(IDC_ZKBCLOSE,OnZkbclose) ON_BN_CLICKED(IDC_RYBOPEN,OnRybopen) ON_BN_CLICKED(IDC_RYBCLOSE,OnRybclose) ON_UPDATE_COMMAND_UI(ID_AUTO, OnUpdateAuto) ON_COMMAND(ID_HELP, OnHelp) ON_COMMAND(ID_SHIWAIJI2, OnShiwaiji2) ON_COMMAND(ID_SHIWAIJI1, OnShiwaiji1) ON_COMMAND(ID_SHINEI, OnShinei) ON_COMMAND(ID_JXCS, OnJxcs) ON_COMMAND(ID_COOL, OnCool) ON_COMMAND(ID_BJTS, OnBjts) ON_COMMAND(ID_HOT, OnHot) ON_COMMAND(ID_TIMING, OnTiming) ON_COMMAND(ID_RONGYEBENG, OnRongyebeng) ON_COMMAND(ID_LISHIKONGTIAO, OnLishikongtiao) ON_COMMAND(ID_LISHIRESHUEI, OnLishireshuei) ON_COMMAND(ID_JIEJING, OnJiejing) ON_COMMAND(ID_BUCHANG, OnBuchang) ON_COMMAND(ID_RESHUEI, OnReshuei) ON_COMMAND(ID_NENGHAO, OnNenghao) ON_WM_SIZE() ON_BN_CLICKED(IDC_KTKBUT, OnKtkbut) ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CModem3Dlg message handlers BOOL CModem3Dlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CToolBarCtrl tb; tb.Create(WS_CHILD |WS_VISIBLE,CRect(0,0,2000,1000),this,ID_TOOLB); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } /************************************************************/ short shBtnColor = 30; m_zhileng.SetIcon(IDI_ICON17); m_zhileng.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor); m_zhire.SetIcon(IDI_ICON18); m_zhire.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor); /*********************************************************************************/ //创建MSCOMM控件 DWORD style=WS_VISIBLE|WS_CHILD; if(!m_Com.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM2)) { return -1; } //初始化串口 m_Com.SetCommPort(1); //选择COM1口 if(!m_Com.GetPortOpen()) m_Com.SetPortOpen(TRUE); //打开串口 m_Com.SetRThreshold(1); // m_Com.SetSThreshold(1); m_Com.SetInputMode(1); /*****************************图标************************/ for(int i=0;i<8;i++) { m_hIcon1[i]=AfxGetApp()->LoadIcon(IDI_ICON1+i); } m_hIcon2[0]=AfxGetApp()->LoadIcon(IDI_ICON9); m_hIcon2[1]=AfxGetApp()->LoadIcon(IDI_ICON10); m_hIcon3[0]=AfxGetApp()->LoadIcon(IDI_ICON11); m_hIcon3[1]=AfxGetApp()->LoadIcon(IDI_ICON12); CDC * pDCC=this->GetDC(); CFont* newFont; newFont=new CFont(); newFont->CreatePointFont(180,"宋体",pDCC); GetDlgItem(IDC_TIT)->SetWindowText("Modem——未接"); GetDlgItem(IDC_TIT)->SetFont(newFont); ReleaseDC(pDCC); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog /**********************************************************************/ /*****************************ADO数据库*****************************/ m_pRecord.CreateInstance("ADODB.Recordset"); m_pRecord->Open("SELECT * FROM 空调",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); /*******************************************************************/ SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } void CModem3Dlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CModem3Dlg::OnPaint() { draw_flag=0; ye1=0; ye2=0; if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CModem3Dlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } HBRUSH CModem3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); switch(pWnd->GetDlgCtrlID()) { case IDC_STATICGAOFAYEWEI: case IDC_STATICLJYW: pDC->SetBkMode(TRANSPARENT); hbr=m_brush2; break; case IDC_STATICKONGTIAO: case IDC_STATICRSQ: case IDC_STATICGUZHANG: pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkMode(TRANSPARENT); hbr=m_brush3; break; case IDC_STATICGUZHANG1: case IDC_STATICGUZHANG2: case IDC_STATICBAOJING: case IDC_STATICYUJING: case IDC_STATICRSGZ: pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkMode(TRANSPARENT); hbr=m_brush3; break; case IDC_TIT: pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkMode(TRANSPARENT); hbr=m_brush1; break; case IDC_GZ11: case IDC_GZ12: case IDC_GZ13: case IDC_GZ14: case IDC_GZ15: case IDC_GZ16: case IDC_GZ17: case IDC_GZ18: case IDC_GZ21: case IDC_GZ22: case IDC_GZ23: case IDC_GZ24: case IDC_GZ25: case IDC_GZ26: case IDC_GZ27: case IDC_BJ11: case IDC_BJ12: case IDC_BJ13: case IDC_BJ14: case IDC_BJ15: case IDC_BJ16: case IDC_BJ17: case IDC_BJ18: case IDC_YJ11: case IDC_YJ12: case IDC_YJ13: case IDC_YJ14: case IDC_YJ15: case IDC_YJ16: case IDC_YJ17: case IDC_YJ18: if(draw_flag==1) { pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkMode(TRANSPARENT); hbr=m_brush1; } break; case IDC_RSBOPEN: case IDC_RSBCLOSE: case IDC_RSJXIAOHUO: case IDC_RSJDAHUO: case IDC_RSJSTOP: if(draw_flag==1) { pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkMode(TRANSPARENT); hbr=m_brush1; } break; } return hbr; } void CModem3Dlg::OnBehao() { // TODO: Add your command handler code here UINT i; CBehaoDialog dlg; i=dlg.DoModal(); if(i==IDOK) { if(m_str=="挂断") { CDC * pDCC=this->GetDC(); CFont* newFont; newFont=new CFont(); newFont->CreatePointFont(180,"宋体",pDCC); GetDlgItem(IDC_TIT)->SetWindowText("BCT16——制冷"); GetDlgItem(IDC_TIT)->SetFont(newFont); ReleaseDC(pDCC); SetTimer(1,400,NULL); CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_ZJTS,MF_UNCHECKED,ID_ZJTS,"整机调试"); m_Menu->ModifyMenu(ID_BJTS,MF_UNCHECKED,ID_BJTS,"部件调试"); m_Menu->ModifyMenu(ID_AUTO,MF_CHECKED,ID_AUTO,"自动运行"); m_Menu->ModifyMenu(ID_SHIWAIJI1,MF_CHECKED,ID_SHIWAIJI1,"1#室外机"); } else if(m_str=="拨号") { KillTimer(1); } } } void CModem3Dlg:: addRecordset() { _variant_t m_Tim,m_Ktr,m_Ktc,m_Gfwd,m_Gfyw,m_Ktsb,m_Lqb,m_Lqfj,m_Ryb,m_Zkb,m_Ktrsj; int i; m_Time=COleDateTime::GetCurrentTime(); i=m_Time.GetMinute(); if(i!=m_Minute) { m_Minute=i; m_Tim=m_Time; m_Ktr=(float)30; m_Ktc=(float)60; m_Gfwd=(float)45; m_Gfyw="2#"; m_Ktsb="开"; m_Lqb="低速"; m_Lqfj="中速"; m_Ryb="开"; m_Zkb="开"; m_Ktrsj="小火"; m_pRecord->AddNew(); m_pRecord->PutCollect("历史时间",m_Tim); m_pRecord->PutCollect("空调水入口",m_Ktr); m_pRecord->PutCollect("空调水出口",m_Ktc); m_pRecord->PutCollect("高发温度",m_Gfwd); m_pRecord->PutCollect("高发液位",m_Gfyw); m_pRecord->PutCollect("空调水泵",m_Ktsb); m_pRecord->PutCollect("冷却泵",m_Lqb); m_pRecord->PutCollect("冷却风机",m_Lqfj); m_pRecord->PutCollect("溶液泵",m_Ryb); m_pRecord->PutCollect("真空泵",m_Zkb); m_pRecord->PutCollect("空调燃烧机",m_Ktrsj); } } //通讯处理 void CModem3Dlg::communcation() { if(send_flag==1) immediate_communcation(); //及时查寻 else gongkuang_communcation(); //工况查寻 receive(); //数据接受 data_dealwith(); } void CModem3Dlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default time_over++; if(time_over>1000) time_over=0; AfxBeginThread(ThreadFunc,(LPVOID)this); //启动工作者线程 //工况数据处理 CDialog::OnTimer(nIDEvent); } void CModem3Dlg::immediate_communcation(void) { int i; if(send_over==1) //上一命令已发送完 { send_over=0; send_timer++; if(send_timer>3) { send_flag=0; send_timer=0; } switch(send_data[3]) { case 0x01: //室外机发送次数 if(shiwaiji_send_timer[send_data[4]-1]>1000) shiwaiji_send_timer[send_data[4]-1]=0; else shiwaiji_send_timer[send_data[4]-1]++; break; case 0x02: //室内机发送次数 if(shineiji_send_timer[send_data[4]-1]>1000) shineiji_send_timer[send_data[4]-1]=0; else shineiji_send_timer[send_data[4]-1]++; break; case 0x04: //热水罐发送次数 if(reshueiguan_send_timer[send_data[4]-1]>1000) reshueiguan_send_timer[send_data[4]-1]=0; else reshueiguan_send_timer[send_data[4]-1]++; break; } CByteArray array; array.RemoveAll(); array.SetSize(50); for(i = 0; i < 50; i++) array.SetAt(i, send_data[i]); m_Com.SetOutput(COleVariant(array)); } } void CModem3Dlg::gongkuang_communcation() { int i; unsigned char Tx_data[100]; // if(send_over==1) { send_over=0; switch(send_owner) { case 1: /* 室外机查寻 ( 工况和故实时故障) */ switch(shiwaiji_command_no) { case 1: //工况查寻 Tx_data[0]=0xf7; Tx_data[1]=0xf8; Tx_data[2]=0x04; Tx_data[3]=0x01; Tx_data[4]=shiwaiji_owner_no; Tx_data[5]=0x10; Tx_data[6]=0x00; for( i=2;i<6;i++) Tx_data[6]+=Tx_data[i]; Tx_data[7]=0xfd; shiwaiji_send_timer[shiwaiji_owner_no-1]++; shiwaiji_command_no++; break; case 2: //实时故障 Tx_data[0]=0xf7; Tx_data[1]=0xf8; Tx_data[2]=0x04; Tx_data[3]=0x01; Tx_data[4]=shiwaiji_owner_no; Tx_data[5]=0x11; Tx_data[6]=0x00; for(i=2;i<6;i++) Tx_data[6]+=Tx_data[i]; Tx_data[7]=0xfd; shiwaiji_send_timer[shiwaiji_owner_no-1]++; shiwaiji_command_no++; case 3: Tx_data[0]=0xf7; Tx_data[1]=0xf8; Tx_data[2]=0x04; Tx_data[3]=0x01; Tx_data[4]=shiwaiji_owner_no; Tx_data[5]=0x0A; Tx_data[6]=0x00; for(i=2;i<6;i++) Tx_data[6]+=Tx_data[i]; Tx_data[7]=0xfd; shiwaiji_send_timer[shiwaiji_owner_no-1]++; shiwaiji_command_no=1; shiwaiji_owner_no++; //室外机发送所有权增加 break; } // if(shiwaiji_owner_no>=3) { send_owner=2; shiwaiji_owner_no=1; } break; case 2: //室内机工况查寻 Tx_data[0]=0xf7; Tx_data[1]=0xf8; Tx_data[2]=0x04; Tx_data[3]=0x02; Tx_data[4]=shineiji_owner_no; Tx_data[5]=0x27; Tx_data[6]=0x00; for(i=2;i<6;i++) Tx_data[6]+=Tx_data[i]; Tx_data[7]=0xfd; shineiji_send_timer[shineiji_owner_no-1]++; shineiji_owner_no++; if(shineiji_owner_no>=80) { shineiji_owner_no=1; send_owner=3; } break; case 3: //热水罐工况查寻 Tx_data[0]=0xf7; Tx_data[1]=0xf8; Tx_data[2]=0x04; Tx_data[3]=0x04; Tx_data[4]=reshueiguan_owner_no; Tx_data[5]=0x29; Tx_data[6]=0x00; for(i=2;i<6;i++) Tx_data[6]+=Tx_data[i]; Tx_data[7]=0xfd; reshueiguan_send_timer[reshueiguan_owner_no-1]++; reshueiguan_owner_no++; if(reshueiguan_owner_no>=17) { send_owner=1; reshueiguan_owner_no=1; } break; } CByteArray array; array.RemoveAll(); array.SetSize(8); for(i = 0; i < 8; i++) array.SetAt(i, Tx_data[i]); m_Com.SetOutput(COleVariant(array)); } } void CModem3Dlg::OnOnCommMscomm2() { // TODO: Add your control notification handler code here VARIANT vResponse; int nEvent; nEvent=m_Com.GetCommEvent(); switch(nEvent) { case 1: send_over=1; break; case 2: vResponse=m_Com.GetInput(); receive_data[m_count]=vResponse.bVal; switch(m_count) { case 0: if(receive_data[0]==0xf7) m_count++; else m_count=0; break; case 1: if(receive_data[1]==0xf8) m_count++; else m_count=0; break; case 2: m_long=receive_data[2]+4; if(m_long>60) m_count=0; else m_count++; break; default: m_count++; break; } if(m_count>=m_long&&m_long>0) { receive_flag=1; m_long=0; m_count=0; } } } void CModem3Dlg::receive(void) { int i,sum; if(receive_flag==1) //数据收完 { receive_flag=0; for(i=2;i<receive_data[2]+2;i++) sum+=receive_data[i]; if(sum!=receive_data[receive_data[2]+2]) //校验和 return; switch(receive_data[5]) { case 0x10: //室外机工况 for(i=0;i<receive_data[2]+4;i++) shiwaiji_gongkuang[receive_data[4]-1][i]=receive_data[i]; shiwaiji_send_timer[receive_data[4]-1]=0; break; case 0x11: for(i=0;i<receive_data[2]+4;i++) //室外机故障 shiwaiji_guzhang[receive_data[4]-1][i]=receive_data[i]; shiwaiji_send_timer[receive_data[4]-1]=0; break; case 0x0A: m_gzzt=receive_data[7]&&0x03; shiwaiji_send_timer[receive_data[4]-1]=0; break; case 0x27: //室内机工况 for(i=0;i<receive_data[2]+4;i++) shineiji_gongkuang[receive_data[4]-1][i]=receive_data[i]; shineiji_send_timer[receive_data[4]-1]=0; break; case 0x29: for(i=0;i<receive_data[2]+4;i++) reshueiguan_gongkuang[receive_data[4]-1][i]=receive_data[i]; reshueiguan_send_timer[receive_data[4]-1]=0; break; default: for(i=0;i<receive_data[2]+4;i++) //immediate_data[receive_data[4]-1][i]=receive_data[i]; send_timer=0; //清除立即查寻的发送次数 send_flag=0; //清除立即查寻的发送标志 break; } receive_flag=0; } } void CModem3Dlg::data_dealwith() { unsigned char j; CString str; /* for(i=2;i<rx_data[2]+4-2;i++) sum+=rx_data[i]; if(sum==rx_data[rx_data[2]+2]) { switch(rx_data[5]) { case 0x10: //室外机工况 if(rx_data[4]==shiwaiji_xuanze) { */ parameter_dealwith(); //工况参数 auto_dealwith(); //自动运行 zb_dealwith(); //数据显示之部件 guzhang_dealwith(); //数据显示之故障 //液位更新 CWnd* pWnd= GetDlgItem(IDC_STATICGAOFAYEWEI); CDC * pDCC=pWnd->GetDC(); CBrush newbrush(RGB (140, 255, 120)); j=shiwaiji_gongkuang[shiwaiji_xuanze][31]&0x1e; switch(j) { case 0x02: m_high=25; break; case 0x04: m_high=50; break; case 0x08: m_high=75; break; case 0x10: m_high=100; break; default: m_high=0; break; } if(ye1!=j) { ye1=j; pWnd->Invalidate(); pWnd->UpdateWindow(); CBrush * oldbrush=pDCC->SelectObject(&newbrush); pDCC->Rectangle(0,100-m_high,50,100); pDCC->SelectObject(oldbrush); pWnd->ReleaseDC(pDCC); } j=shiwaiji_gongkuang[shiwaiji_xuanze][32]&0x07; switch(j) { case 0x01: m_high=40; break; case 0x02: m_high=80; break; case 0x04: m_high=125; break; default: m_high=0; break; } if(ye2!=j) {ye2=j; pWnd=GetDlgItem(IDC_STATICLJYW); pDCC=pWnd->GetDC(); pWnd->Invalidate(); pWnd->UpdateWindow(); CBrush newbrush2(RGB(123,222,125)); CBrush* oldbrush2=pDCC->SelectObject(&newbrush2); pDCC->Rectangle(0,125-m_high,68,125); pDCC->SelectObject(oldbrush2); pWnd->ReleaseDC(pDCC); } j=shiwaiji_gongkuang[shiwaiji_xuanze][31]&&0x20; if(j==0x20) GetDlgItem(IDC_DFYW)->SetWindowText("满"); else GetDlgItem(IDC_DFYW)->SetWindowText("未满"); j=shiwaiji_gongkuang[shiwaiji_xuanze][31]&&0x40; if(j==0x40) GetDlgItem(IDC_CQYW)->SetWindowText("满"); else GetDlgItem(IDC_CQYW)->SetWindowText("未满"); j=shiwaiji_gongkuang[shiwaiji_xuanze][31]&&0x80; if(j==0x80) GetDlgItem(IDC_LQSYW)->SetWindowText("满"); else GetDlgItem(IDC_LQSYW)->SetWindowText("未满"); ///按纽更新处理 m_ktkbut.button_flag=1; m_ktkbut.InvalidateRect(FALSE); m_rskbut.button_flag=1; m_rskbut.InvalidateRect(FALSE); if(shiwaiji_guzhang[shiwaiji_xuanze][7]!=0||shiwaiji_guzhang[shiwaiji_xuanze][8]!=0||shiwaiji_guzhang[shiwaiji_xuanze][9]!=0||shiwaiji_guzhang[shiwaiji_xuanze][11]!=0||shiwaiji_guzhang[shiwaiji_xuanze][12]!=0) { if(m_resetflag==0) {m_resetflag=1; m_reset.SetFlag(0); } else { m_resetflag=0; m_reset.SetFlag(1); } } else m_reset.SetFlag(1); m_reset.InvalidateRect(FALSE); //菜单更新 CMenu* m_Menu=this->GetMenu(); if(m_gzzt!=2) //zhuyi { m_Menu->ModifyMenu(ID_ZHILENG,MF_CHECKED,ID_ZHILENG,"制冷"); m_Menu->ModifyMenu(ID_ZHIRE,MF_UNCHECKED,ID_ZHIRE,"制热"); } else if(m_gzzt==2) { m_Menu->ModifyMenu(ID_ZHILENG,MF_UNCHECKED,ID_ZHILENG,"制冷"); m_Menu->ModifyMenu(ID_ZHIRE,MF_CHECKED,ID_ZHIRE,"制热"); } } /* } break; } } */ void CModem3Dlg::parameter_dealwith(void) { float sumed; CString str; if(shiwaiji_gongkuang[shiwaiji_xuanze][8]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][8]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][7])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][8]*256+shiwaiji_gongkuang[shiwaiji_xuanze][7]))/2; if(sumed!=a_flag[0]) { a_flag[0]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_KTSIN)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][10]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][10]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][9])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][10]*256+shiwaiji_gongkuang[shiwaiji_xuanze][9]))/2; if(sumed!=a_flag[1]) { a_flag[1]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_KTSEX)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][12]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][12]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][11])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][12]*256+shiwaiji_gongkuang[shiwaiji_xuanze][11]))/2; if(sumed!=a_flag[2]) { a_flag[2]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_LQSIN)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][14]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][14]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][13])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][14]*256+shiwaiji_gongkuang[shiwaiji_xuanze][13]))/2; if(sumed!=a_flag[3]) { a_flag[3]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_LQSEX)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][16]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][16]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][15]))); else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][16]*256+shiwaiji_gongkuang[shiwaiji_xuanze][15])); if(sumed!=a_flag[4]) { a_flag[4]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_GAOFA)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][18]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][18]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][17])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][18]*256+shiwaiji_gongkuang[shiwaiji_xuanze][17]))/2; if(a_flag[5]!=sumed) { a_flag[5]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_HUANJING)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][20]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][20]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][19]))); else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][20]*256+shiwaiji_gongkuang[shiwaiji_xuanze][19])); if(sumed!=a_flag[6]) {a_flag[6]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_PAIQI)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][22]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][22]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][21])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][22]*256+shiwaiji_gongkuang[shiwaiji_xuanze][21]))/2; if(sumed!=a_flag[7]) { a_flag[7]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_RESHUEI)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][24]>=128) sumed=-(float(((shiwaiji_gongkuang[shiwaiji_xuanze][24]-128)*256+shiwaiji_gongkuang[shiwaiji_xuanze][23])))/2; else sumed=(float(shiwaiji_gongkuang[shiwaiji_xuanze][24]*256+shiwaiji_gongkuang[shiwaiji_xuanze][23]))/2; if(sumed!=a_flag[8]) { a_flag[8]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_KTSC)->SetWindowText(str); } if(shiwaiji_gongkuang[shiwaiji_xuanze][25]>=128) sumed=-float((shiwaiji_gongkuang[shiwaiji_xuanze][25]-128)); else sumed=shiwaiji_gongkuang[shiwaiji_xuanze][25]; if(a_flag[9]!=sumed) { a_flag[9]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_GLMK)->SetWindowText(str); } sumed=shiwaiji_gongkuang[shiwaiji_xuanze][26]; if(sumed!=a_flag[10]) { a_flag[10]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_DQDY)->SetWindowText(str); } sumed=float(shiwaiji_gongkuang[shiwaiji_xuanze][27]/4); if(sumed!=a_flag[11]) { a_flag[11]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_RYBP)->SetWindowText(str); } sumed=float(shiwaiji_gongkuang[shiwaiji_xuanze][29]/4); if(sumed!=a_flag[12]) { a_flag[12]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_LQBPL)->SetWindowText(str); } sumed=float(shiwaiji_gongkuang[shiwaiji_xuanze][30]/4); if(sumed!=a_flag[13]) { a_flag[13]=sumed; str.Format("%.1f",sumed); GetDlgItem(IDC_LQFJPL)->SetWindowText(str); } } void CModem3Dlg::auto_dealwith(void) //数据显示之自动运行 { CString str; int i; if(m_kzfs==0) { if(add>7) add=0; if(abb>1) abb=0; i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x03; GetDlgItem(IDC_RSJ)->GetWindowText(str); switch(i) { case 0: if(str!="停机") GetDlgItem(IDC_RSJ)->SetWindowText("停机"); break; case 1: if(str!="小火") GetDlgItem(IDC_RSJ)->SetWindowText("小火"); m_prsj.SetIcon(m_hIcon1[abb]); break; case 3: if(str!="大火") GetDlgItem(IDC_RSJ)->SetWindowText("大火"); m_prsj.SetIcon(m_hIcon1[abb]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x04; GetDlgItem(IDC_KTSB)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_KTSB)->SetWindowText("停止"); break; case 0x04: if(str!="运行") GetDlgItem(IDC_KTSB)->SetWindowText("运行"); m_pktsb.SetIcon(m_hIcon1[add]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x18; GetDlgItem(IDC_LQB)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_LQB)->SetWindowText("停止"); break; case 0x08: if(str!="低速") GetDlgItem(IDC_LQB)->SetWindowText("低速"); m_plqb.SetIcon(m_hIcon1[add]); break; case 0x18: if(str!="高速") GetDlgItem(IDC_LQB)->SetWindowText("高速"); m_plqb.SetIcon(m_hIcon1[add]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x60; GetDlgItem(IDC_LQFJ)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_LQFJ)->SetWindowText("停止"); break; case 0x20: if(str!="低速") GetDlgItem(IDC_LQFJ)->SetWindowText("低速"); m_plqfj.SetIcon(m_hIcon1[add]); break; case 0x40: if(str!="中速") GetDlgItem(IDC_LQFJ)->SetWindowText("中速"); m_plqfj.SetIcon(m_hIcon1[add]); break; case 0x60: if(str!="高速") GetDlgItem(IDC_LQFJ)->SetWindowText("高速"); m_plqfj.SetIcon(m_hIcon1[add]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x80; GetDlgItem(IDC_LJB)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_LJB)->SetWindowText("停止"); break; case 0x80: if(str!="运行") GetDlgItem(IDC_LJB)->SetWindowText("运行"); m_pljb.SetIcon(m_hIcon1[add]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x03; GetDlgItem(IDC_LRF)->GetWindowText(str); switch(i) { case 0: if(str!="正开") GetDlgItem(IDC_LRF)->SetWindowText("正开"); break; case 1: if(str!="开") GetDlgItem(IDC_LRF)->SetWindowText("开"); m_plrf.SetIcon(m_hIcon3[1]); break; case 2: if(str!="关") GetDlgItem(IDC_LRF)->SetWindowText("关"); m_plrf.SetIcon(m_hIcon3[0]); break; case 3: if(str!="正关") GetDlgItem(IDC_LRF)->SetWindowText("正关"); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x04; GetDlgItem(IDC_BSF)->GetWindowText(str); switch(i) { case 0: if(str!="关") GetDlgItem(IDC_BSF)->SetWindowText("关"); m_pbsf.SetIcon(m_hIcon3[0]); break; case 0x04: if(str!="开") GetDlgItem(IDC_BSF)->SetWindowText("开"); m_pbsf.SetIcon(m_hIcon3[1]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x18; GetDlgItem(IDC_PSF)->GetWindowText(str); switch(i) { case 0: if(str!="正开") GetDlgItem(IDC_PSF)->SetWindowText("正开"); break; case 0x08: if(str!="开") GetDlgItem(IDC_PSF)->SetWindowText("开"); m_ppsf.SetIcon(m_hIcon3[1]); break; case 0x10: if(str!="关") GetDlgItem(IDC_PSF)->SetWindowText("关"); m_ppsf.SetIcon(m_hIcon3[0]); break; case 0x18: if(str!="正关") GetDlgItem(IDC_PSF)->SetWindowText("正关"); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x60; GetDlgItem(IDC_LJF)->GetWindowText(str); switch(i) { case 0: if(str!="正开") GetDlgItem(IDC_LJF)->SetWindowText("正开"); break; case 0x20: if(str!="开") GetDlgItem(IDC_LJF)->SetWindowText("开"); m_pljf.SetIcon(m_hIcon3[1]); break; case 0x40: if(str!="关") GetDlgItem(IDC_LJF)->SetWindowText("关"); m_pljf.SetIcon(m_hIcon3[0]); break; case 0x60: if(str!="正关") GetDlgItem(IDC_LJF)->SetWindowText("正关"); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x01; GetDlgItem(IDC_RYB)->GetWindowText(str); switch(i) { case 0x00: if(str!="停止") GetDlgItem(IDC_RYB)->SetWindowText("停止"); break; case 0x01: if(str!="运行") GetDlgItem(IDC_RYB)->SetWindowText("运行"); m_pryb.SetIcon(m_hIcon1[add]); break; } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x80; GetDlgItem(IDC_ZKB)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_ZKB)->SetWindowText("停止"); break; case 0x80: if(str!="运行") GetDlgItem(IDC_ZKB)->SetWindowText("运行"); m_pzkb.SetIcon(m_hIcon1[add]); break; } /* i=rx_data[35]&0x02; GetDlgItem(IDC_LQFJ2)->GetWindowText(str); switch(i) { case 0: if(str!="关闭") GetDlgItem(IDC_LQFJ2)->SetWindowText("关闭"); break; case 0x02: if(str!="打开") GetDlgItem(IDC_LQFJ2)->SetWindowText("打开"); m_plqfj2.SetIcon(m_hIcon1[add]); break; } */ i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x04; GetDlgItem(IDC_RSB)->GetWindowText(str); switch(i) { case 0: if(str!="停止") GetDlgItem(IDC_RSB)->SetWindowText("停止"); break; case 0x04: if(str!="运行") GetDlgItem(IDC_RSB)->SetWindowText("运行"); m_prsb.SetIcon(m_hIcon1[add]); break; } if(abb>2) abb=0; i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x18; GetDlgItem(IDC_RSRSJ)->GetWindowText(str); switch(i) { case 0: if(str!="停机") GetDlgItem(IDC_RSRSJ)->SetWindowText("停机"); break; case 0x08: if(str!="小火") GetDlgItem(IDC_RSRSJ)->SetWindowText("小火"); m_prsrsj.SetIcon(m_hIcon2[abb]); break; case 0x10: if(str!="大火") GetDlgItem(IDC_RSRSJ)->SetWindowText("大火"); m_prsrsj.SetIcon(m_hIcon2[abb]); break; } add++; abb++; } } void CModem3Dlg::zb_dealwith() {//部件 int i; CString str; if(m_kzfs==1||m_kzfs==2) { i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x04; switch(i) { case 0: m_ktsbclose.button_flag=1; m_ktsbopen.button_flag=0; break; case 0x04: m_ktsbclose.button_flag=0; m_ktsbopen.button_flag=1; break; } if(i!=b_flag[0]) {b_flag[0]=i; m_ktsbclose.InvalidateRect(FALSE); m_ktsbopen.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x18; switch(i) { case 0: m_lqbclose.button_flag=1; m_lqbdisuopen.button_flag=0; m_lqbgaosuopen.button_flag=0; break; case 0x08: m_lqbclose.button_flag=0; m_lqbdisuopen.button_flag=1; m_lqbgaosuopen.button_flag=0; break; case 0x18: m_lqbclose.button_flag=0; m_lqbdisuopen.button_flag=0; m_lqbgaosuopen.button_flag=1; break; } if(i!=b_flag[1]) { b_flag[1]=i; m_lqbclose.InvalidateRect(FALSE); m_lqbdisuopen.InvalidateRect(FALSE); m_lqbgaosuopen.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x60; switch(i) { case 0: m_lqfjclose.button_flag=1; m_lqfjdisuopen.button_flag=0; m_lqfjzhongsuopen.button_flag=0; m_lqfjgaosuopen.button_flag=0; break; case 0x20: m_lqfjclose.button_flag=0; m_lqfjdisuopen.button_flag=1; m_lqfjzhongsuopen.button_flag=0; m_lqfjgaosuopen.button_flag=0; break; case 0x40: m_lqfjclose.button_flag=0; m_lqfjdisuopen.button_flag=0; m_lqfjzhongsuopen.button_flag=1; m_lqfjgaosuopen.button_flag=0; break; case 0x60: m_lqfjclose.button_flag=0; m_lqfjdisuopen.button_flag=0; m_lqfjzhongsuopen.button_flag=0; m_lqfjgaosuopen.button_flag=1; break; } if(i!=b_flag[2]) { b_flag[2]=i; m_lqfjclose.InvalidateRect(FALSE); m_lqfjdisuopen.InvalidateRect(FALSE); m_lqfjzhongsuopen.InvalidateRect(FALSE); m_lqfjgaosuopen.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][33]&0x80; switch(i) { case 0: m_ljbclose.button_flag=1; m_ljbopen.button_flag=0; break; case 0x80: m_ljbclose.button_flag=0; m_ljbopen.button_flag=1; break; } if(i!=b_flag[3]) {b_flag[3]=i; m_ljbclose.InvalidateRect(FALSE); m_ljbopen.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x03; switch(i) { case 0: m_lrfopen.SetWindowText("正开"); m_lrfstop.button_flag=0; m_lrfopen.button_flag=1; m_lrfclose.button_flag=0; break; case 1: m_lrfopen.SetWindowText("开"); m_lrfstop.button_flag=0; m_lrfopen.button_flag=1; m_lrfclose.button_flag=0; break; case 2: m_lrfclose.SetWindowText("正关"); m_lrfstop.button_flag=0; m_lrfopen.button_flag=0; m_lrfclose.button_flag=1; break; case 3: m_lrfclose.SetWindowText("正关"); m_lrfstop.button_flag=0; m_lrfopen.button_flag=0; m_lrfclose.button_flag=1; } if(i!=b_flag[4]) { b_flag[4]=i; if(m_kzfs!=2) m_lrfstop.InvalidateRect(FALSE); m_lrfopen.InvalidateRect(FALSE); m_lrfclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x04; switch(i) { case 0: m_bsfclose.button_flag=1; m_bsfopen.button_flag=0; break; case 0x04: m_bsfclose.button_flag=1; m_bsfopen.button_flag=0; break; } if(i!=b_flag[5]) { b_flag[5]=i; m_bsfopen.InvalidateRect(FALSE); m_bsfclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x18; switch(i) { case 0: m_psfopen.SetWindowText("正开"); m_psfstop.button_flag=0; m_psfopen.button_flag=1; m_psfclose.button_flag=0; break; case 0x08: m_psfopen.SetWindowText("开"); m_psfstop.button_flag=0; m_psfopen.button_flag=1; m_psfclose.button_flag=0; break; case 0x10: m_psfclose.SetWindowText("关"); m_psfstop.button_flag=0; m_psfopen.button_flag=0; m_psfclose.button_flag=1; break; case 0x18: m_psfclose.SetWindowText("正关"); m_psfstop.button_flag=0; m_psfopen.button_flag=0; m_psfclose.button_flag=1; break; } if(i!=b_flag[6]) { b_flag[6]=i; if(m_kzfs!=2) m_psfstop.InvalidateRect(FALSE); m_psfopen.InvalidateRect(FALSE); m_psfclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x60; switch(i) { case 0: m_ljfopen.SetWindowText("正开"); m_ljfstop.button_flag=0; m_ljfopen.button_flag=1; m_ljfclose.button_flag=0; break; case 0x20: m_ljfopen.SetWindowText("开"); m_ljfstop.button_flag=0; m_ljfopen.button_flag=1; m_ljfclose.button_flag=0; break; case 0x40: m_ljfclose.SetWindowText("关"); m_ljfstop.button_flag=0; m_ljfopen.button_flag=0; m_ljfclose.button_flag=1; break; case 0x60: m_ljfclose.SetWindowText("正关"); m_ljfstop.button_flag=0; m_ljfopen.button_flag=0; m_ljfclose.button_flag=1; break; } if(i!=b_flag[7]) { b_flag[7]=i; if(m_kzfs!=2) m_ljfstop.InvalidateRect(FALSE); m_ljfopen.InvalidateRect(FALSE); m_ljfclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x01; switch(i) { case 0x00: m_rybclose.button_flag=1; m_rybopen.button_flag=0; break; case 0x01: m_rybclose.button_flag=0; m_rybopen.button_flag=1; break; } if(i!=b_flag[8]) { b_flag[8]=i; m_rybopen.InvalidateRect(FALSE); m_rybclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][34]&0x80; switch(i) { case 0: m_zkbclose.button_flag=1; m_zkbopen.button_flag=0; break; case 0x80: m_zkbclose.button_flag=0; m_zkbopen.button_flag=1; break; } if(i!=b_flag[9]) { b_flag[9]=i; m_zkbopen.InvalidateRect(FALSE); m_zkbclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x04; switch(i) { case 0: m_rsbclose.button_flag=1; m_rsbopen.button_flag=0; break; case 0x04: m_rsbclose.button_flag=0; m_rsbopen.button_flag=1; break; } if(i!=b_flag[10]) { b_flag[10]=i; m_rsbopen.InvalidateRect(FALSE); m_rsbclose.InvalidateRect(FALSE); } i=shiwaiji_gongkuang[shiwaiji_xuanze][35]&0x18; switch(i) { case 0: m_rsrsjstop.button_flag=1; m_rsrsjxiaohuo.button_flag=0; m_rsrsjdahuo.button_flag=0; break; case 0x08: m_rsrsjstop.button_flag=0; m_rsrsjxiaohuo.button_flag=1; m_rsrsjdahuo.button_flag=0; break; case 0x10: m_rsrsjstop.button_flag=0; m_rsrsjxiaohuo.button_flag=0; m_rsrsjdahuo.button_flag=1; break; } if(i!=b_flag[11]) { b_flag[11]=i; m_rsrsjstop.InvalidateRect(FALSE); m_rsrsjxiaohuo.InvalidateRect(FALSE); m_rsrsjdahuo.InvalidateRect(FALSE); } } } void CModem3Dlg::guzhang_dealwith() //数据显示之故障 { //故障信息 unsigned char j; draw_flag=0; j=shiwaiji_guzhang[shiwaiji_xuanze][7]&0x01; if(j==0x01) { draw_flag=1; } GetDlgItem(IDC_GZ11)->SetWindowText("空调水断水"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x02; if(j==0x02) { draw_flag=1; } GetDlgItem(IDC_GZ12)->SetWindowText("冷却水断水"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x04; if(j==0x04) { draw_flag=1; } GetDlgItem(IDC_GZ13)->SetWindowText("高交结晶"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x08; if(j==0x08) { draw_flag=1; } GetDlgItem(IDC_GZ14)->SetWindowText("低交结晶"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x10; if(j==0x10) { draw_flag=1; } GetDlgItem(IDC_GZ16)->SetWindowText("空调水流量开关故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x20; if(j==0x20) { draw_flag=1; } GetDlgItem(IDC_GZ15)->SetWindowText("空调水出口温度传感器"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x40; if(j==0x40) { draw_flag=1; } GetDlgItem(IDC_GZ17)->SetWindowText("空调水入口温度传感器"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][7]&0x80; if(j==0x80) { draw_flag=1; } GetDlgItem(IDC_GZ18)->SetWindowText("高发温度传感器故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x01; if(j==0x01) { draw_flag=1; } GetDlgItem(IDC_GZ21)->SetWindowText("空调水泵故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x02; if(j==0x02) { draw_flag=1; } GetDlgItem(IDC_GZ22)->SetWindowText("冷却泵故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x04; if(j==0x04) { draw_flag=1; } GetDlgItem(IDC_GZ23)->SetWindowText("冷却风机故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x08; if(j==0x08) { draw_flag=1; } GetDlgItem(IDC_GZ24)->SetWindowText("溶液泵故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x10; if(j==0x10) { draw_flag=1; } GetDlgItem(IDC_GZ25)->SetWindowText("冷剂泵故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x20; if(j==0x20) { draw_flag=1; } GetDlgItem(IDC_GZ26)->SetWindowText("燃烧机故障"); /* j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x40; if(j==0x40&&p==0&&k==0) { k=1; if(str!="2#冷却风机故障") { GetDlgItem(IDC_GZ22)->SetWindowText("2#冷却风机故障"); p=1; } } */ draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][8]&0x80; if(j==0x80) { draw_flag=1; } GetDlgItem(IDC_GZ27)->SetWindowText("冷热阀未到位"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x01; if(j==0x01) { draw_flag=1; } GetDlgItem(IDC_BJ11)->SetWindowText("空调水温低"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x02; if(j==0x02) { draw_flag=1; } GetDlgItem(IDC_BJ12)->SetWindowText("冷却水超温"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x04; if(j==0x04) { draw_flag=1; } GetDlgItem(IDC_BJ13)->SetWindowText("冷却水温低"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x08; if(j==0x08) { draw_flag=1; } GetDlgItem(IDC_BJ14)->SetWindowText("高发超温"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x10; if(j==0x10) { draw_flag=1; } GetDlgItem(IDC_BJ15)->SetWindowText("排气超温"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x20; if(j==0x20) { draw_flag=1; } GetDlgItem(IDC_BJ16)->SetWindowText("高发缺溶液"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x40; if(j==0x40) { draw_flag=1; } GetDlgItem(IDC_BJ17)->SetWindowText("高发超压"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][9]&0x80; if(j==0x80) { draw_flag=1; } GetDlgItem(IDC_BJ18)->SetWindowText("冷剂阀故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x01; if(j==0x01) { draw_flag=1; } GetDlgItem(IDC_YJ11)->SetWindowText("高发液控异常"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x02; if(j==0x02) { draw_flag=1; } GetDlgItem(IDC_YJ12)->SetWindowText("冷剂液控异常"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x04; if(j==0x04) { draw_flag=1; } GetDlgItem(IDC_YJ13)->SetWindowText("环境温度传感器故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x08; if(j==0x08) { draw_flag=1; } GetDlgItem(IDC_YJ14)->SetWindowText("空调水入口温度传感器故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x10; if(j==0x10) { draw_flag=1; } GetDlgItem(IDC_YJ15)->SetWindowText("冷却水出口温度传感器故障"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x20; if(j==0x20) { draw_flag=1; } GetDlgItem(IDC_YJ16)->SetWindowText("不凝气满"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x40; if(j==0x40) { draw_flag=1; } GetDlgItem(IDC_YJ17)->SetWindowText("环境温度低/高"); draw_flag=0; j=shiwaiji_gongkuang[shiwaiji_xuanze][10]&0x80; if(j==0x80) { draw_flag=1; } GetDlgItem(IDC_YJ18)->SetWindowText("排气温度传感器故障"); } //历史故障 void CModem3Dlg::OnLsgz() { // TODO: Add your control notification handler code here CListDialog dlg; dlg.DoModal(); } //整机调试 void CModem3Dlg::OnZjts() { // TODO: Add your command handler code here CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_ZJTS,MF_CHECKED,ID_ZJTS,"整机调试"); m_Menu->ModifyMenu(ID_BJTS,MF_UNCHECKED,ID_BJTS,"部件调试"); m_Menu->ModifyMenu(ID_AUTO,MF_UNCHECKED,ID_AUTO,"自动运行"); if(m_kzfs==0) zjbj(); m_lrfstop.DestroyWindow(); m_ljfstop.DestroyWindow(); m_psfstop.DestroyWindow(); m_kzfs=2; GetDlgItem(IDC_KTFS)->SetWindowText("整机调试"); } void CModem3Dlg::OnUpdateZjts(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here if(m_kzfs==2) {pCmdUI->SetCheck(1); pCmdUI->Enable(FALSE); } } // void CModem3Dlg::zjbj(void) { m_pktsb.DestroyWindow(); m_pljb.DestroyWindow(); m_plqb.DestroyWindow(); m_prsb.DestroyWindow(); m_prsrsj.DestroyWindow(); m_pzkb.DestroyWindow(); m_plqfj.DestroyWindow(); m_pryb.DestroyWindow(); m_plrf.DestroyWindow(); m_ppsf.DestroyWindow(); m_pbsf.DestroyWindow(); m_pljf.DestroyWindow(); m_prsj.DestroyWindow(); GetDlgItem(IDC_RSJ)->SetWindowText(""); GetDlgItem(IDC_KTSB)->SetWindowText(""); GetDlgItem(IDC_LQB)->SetWindowText(""); GetDlgItem(IDC_LJB)->SetWindowText(""); GetDlgItem(IDC_LQFJ)->SetWindowText(""); GetDlgItem(IDC_ZKB)->SetWindowText(""); GetDlgItem(IDC_RYB)->SetWindowText(""); GetDlgItem(IDC_RSB)->SetWindowText(""); GetDlgItem(IDC_RSRSJ)->SetWindowText(""); GetDlgItem(IDC_LRF)->SetWindowText(""); GetDlgItem(IDC_LJF)->SetWindowText(""); GetDlgItem(IDC_BSF)->SetWindowText(""); GetDlgItem(IDC_PSF)->SetWindowText(""); CDC * pDCC=this->GetDC(); CFont* pFont; pFont=new CFont(); pFont->CreatePointFont(100,"宋体",pDCC); //CFont *pFont=CFont::FromHandle((HFONT)::GetStockObject(ANSI_VAR_FONT)); m_ktsbopen.button_flag=0; m_ktsbopen.Create("开",WS_CHILD |WS_VISIBLE|BS_OWNERDRAW| BS_PUSHBUTTON,CRect(300,310,340,335),this,IDC_KTSBOPEN); m_ktsbopen.SetFont(pFont); m_ktsbclose.button_flag=0; m_ktsbclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(350,310,390,335),this,IDC_KTSBCLOSE); m_ktsbclose.SetFont(pFont); m_lqbdisuopen.button_flag=0; m_lqbdisuopen.Create("低速",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(500,310,540,335),this,IDC_LQBDISUOPEN); m_lqbdisuopen.SetFont(pFont); m_lqbgaosuopen.button_flag=0; m_lqbgaosuopen.Create("高速",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(550,310,590,335),this,IDC_LQBGAOSUOPEN); m_lqbgaosuopen.SetFont(pFont); m_lqbclose.button_flag=0; m_lqbclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(600,310,640,335),this,IDC_LQBCLOSE); m_lqbclose.SetFont(pFont); m_lqfjdisuopen.button_flag=0; m_lqfjdisuopen.Create("低速",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(300,360,340,385),this,IDC_LQFJDISUOPEN); m_lqfjdisuopen.SetFont(pFont); m_lqfjzhongsuopen.button_flag=0; m_lqfjzhongsuopen.Create("中速",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,360,390,385),this,IDC_LQFJZHONGSUOPEN); m_lqfjzhongsuopen.SetFont(pFont); m_lqfjgaosuopen.button_flag=0; m_lqfjgaosuopen.Create("高速",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(400,360,440,385),this,IDC_LQFJGAOSUOPEN); m_lqfjgaosuopen.SetFont(pFont); m_lqfjclose.button_flag=0; m_lqfjclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(450,360,490,385),this,IDC_LQFJCLOSE); m_lqfjclose.SetFont(pFont); m_ljbopen.button_flag=0; m_ljbopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(500,360,540,385),this,IDC_LJBOPEN); m_ljbopen.SetFont(pFont); m_ljbclose.button_flag=0; m_ljbclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(550,360,590,385),this,IDC_LJBCLOSE); m_ljbclose.SetFont(pFont); m_zkbopen.button_flag=0; m_zkbopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(300,405,340,430),this,IDC_ZKBOPEN); m_zkbopen.SetFont(pFont); m_zkbclose.button_flag=0; m_zkbclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,405,390,430),this,IDC_ZKBCLOSE); m_zkbclose.SetFont(pFont); m_rybopen.button_flag=0; m_rybopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(500,405,540,430),this,IDC_RYBOPEN); m_rybopen.SetFont(pFont); m_rybclose.button_flag=0; m_rybclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(550,405,590,430),this,IDC_RYBCLOSE); m_rybclose.SetFont(pFont); m_rsbopen.button_flag=0; m_rsbopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(300,630,340,655),this,IDC_RSBOPEN); m_rsbopen.SetFont(pFont); m_rsbclose.button_flag=0; m_rsbclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,630,390,655),this,IDC_RSBCLOSE); m_rsbclose.SetFont(pFont); m_rsrsjxiaohuo.button_flag=0; m_rsrsjxiaohuo.Create("小火",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(500,630,540,655),this,IDC_RSRSJXIAOHUO); m_rsrsjxiaohuo.SetFont(pFont); m_rsrsjdahuo.button_flag=0; m_rsrsjdahuo.Create("大火",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(550,630,590,655),this,IDC_RSRSJDAHUO); m_rsrsjdahuo.SetFont(pFont); m_rsrsjstop.button_flag=0; m_rsrsjstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(600,630,640,655),this,IDC_RSRSJSTOP); m_rsrsjstop.SetFont(pFont); m_lrfopen.button_flag=0; m_lrfopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(300,445,340,470),this,IDC_LRFOPEN); m_lrfopen.SetFont(pFont); m_lrfclose.button_flag=0; m_lrfclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,445,390,470),this,IDC_LRFCLOSE); m_lrfclose.SetFont(pFont); m_lrfstop.button_flag=0; m_lrfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(400,445,440,470),this,IDC_LRFSTOP); m_lrfstop.SetFont(pFont); m_bsfopen.button_flag=0; m_bsfopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(500,495,540,520),this,IDC_BSFOPEN); m_bsfopen.SetFont(pFont); m_bsfclose.button_flag=0; m_bsfclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(550,495,590,520),this,IDC_BSFCLOSE); m_bsfclose.SetFont(pFont); m_psfopen.button_flag=0; m_psfopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(300,495,340,520),this,IDC_PSFOPEN); m_psfopen.SetFont(pFont); m_psfclose.button_flag=0; m_psfclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,495,390,520),this,IDC_PSFCLOSE); m_psfclose.SetFont(pFont); m_psfstop.button_flag=0; m_psfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(400,495,440,520),this,IDC_PSFSTOP); m_psfstop.SetFont(pFont); m_ljfopen.button_flag=0; m_ljfopen.Create("开",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(500,445,540,470),this,IDC_LJFOPEN); m_ljfopen.SetFont(pFont); m_ljfclose.button_flag=0; m_ljfclose.Create("关",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(550,445,590,470),this,IDC_LJFCLOSE); m_ljfclose.SetFont(pFont); m_ljfstop.button_flag=0; m_ljfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(600,445,640,470),this,IDC_LJFSTOP); m_ljfstop.SetFont(pFont); m_rsjxiaohuo.button_flag=0; m_rsjxiaohuo.Create("小火",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(300,540,340,565),this,IDC_RSJXIAOHUO); m_rsjxiaohuo.SetFont(pFont); m_rsjdahuo.button_flag=0; m_rsjdahuo.Create("大火",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(350,540,390,565),this,IDC_RSJDAHUO); m_rsjdahuo.SetFont(pFont); m_rsjstop.button_flag=0; m_rsjstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW ,CRect(400,540,440,565),this,IDC_RSJSTOP); m_rsjstop.SetFont(pFont); ReleaseDC(pDCC); } void CModem3Dlg::OnBjts() { // TODO: Add your command handler code here CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_ZJTS,MF_UNCHECKED,ID_ZJTS,"整机调试"); m_Menu->ModifyMenu(ID_BJTS,MF_CHECKED,ID_BJTS,"部件调试"); m_Menu->ModifyMenu(ID_AUTO,MF_UNCHECKED,ID_AUTO,"自动运行"); if(m_kzfs==0) zjbj(); if(m_kzfs==2) { CDC * pDCC=this->GetDC(); CFont* pFont; pFont=new CFont(); pFont->CreatePointFont(100,"宋体",pDCC); m_psfstop.button_flag=0; m_psfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(335,395,365,415),this,IDC_PSFSTOP); m_psfstop.SetFont(pFont); m_ljfstop.button_flag=0; m_ljfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(480,360,510,380),this,IDC_LJFSTOP); m_ljfstop.SetFont(pFont); m_lrfstop.button_flag=0; m_lrfstop.Create("停",WS_CHILD |WS_VISIBLE|BS_PUSHBUTTON |BS_OWNERDRAW,CRect(335,360,365,380),this,IDC_LRFSTOP); m_lrfstop.SetFont(pFont); } m_kzfs=1; GetDlgItem(IDC_KTFS)->SetWindowText("部件调试"); } void CModem3Dlg::OnUpdateBjts(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here if(m_kzfs==1) {pCmdUI->SetCheck(1); pCmdUI->Enable(FALSE); } } //自动运行 void CModem3Dlg::OnAuto() { // TODO: Add your command handler code here int i; m_kzfs=0; CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_ZJTS,MF_UNCHECKED,ID_ZJTS,"整机调试"); m_Menu->ModifyMenu(ID_BJTS,MF_UNCHECKED,ID_BJTS,"部件调试"); m_Menu->ModifyMenu(ID_AUTO,MF_CHECKED,ID_AUTO,"自动运行"); GetDlgItem(IDC_KTFS)->SetWindowText("自动运行"); m_ktsbopen.DestroyWindow(); m_ktsbclose.DestroyWindow(); m_lqbdisuopen.DestroyWindow(); m_lqbgaosuopen.DestroyWindow(); m_lqbclose.DestroyWindow(); m_lqfjdisuopen.DestroyWindow(); m_lqfjzhongsuopen.DestroyWindow(); m_lqfjgaosuopen.DestroyWindow(); m_lqfjclose.DestroyWindow(); m_ljbopen.DestroyWindow(); m_ljbclose.DestroyWindow(); m_zkbopen.DestroyWindow(); m_zkbclose.DestroyWindow(); m_rybopen.DestroyWindow(); m_rybclose.DestroyWindow(); m_ljfopen.DestroyWindow(); m_ljfclose.DestroyWindow(); m_ljfstop.DestroyWindow(); m_lrfstop.DestroyWindow(); m_lrfclose.DestroyWindow(); m_lrfopen.DestroyWindow(); m_psfclose.DestroyWindow(); m_psfopen.DestroyWindow(); m_psfstop.DestroyWindow(); m_bsfopen.DestroyWindow(); m_bsfclose.DestroyWindow(); m_rsjxiaohuo.DestroyWindow(); m_rsjdahuo.DestroyWindow(); m_rsjstop.DestroyWindow(); m_rsrsjxiaohuo.DestroyWindow(); m_rsrsjdahuo.DestroyWindow(); m_rsrsjstop.DestroyWindow(); m_rsbopen.DestroyWindow(); m_rsbclose.DestroyWindow(); m_pktsb.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(420,280,440,310),this,IDC_STATICPKTSB); m_plqb.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(600,280,620,300),this,IDC_STATICPLQB); m_plqfj.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(420,335,440,360),this,IDC_STATICPLQFJ); m_pljb.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(600,335,620,355),this,IDC_STATICPLJB); m_pzkb.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(420,385,440,400),this,IDC_STATICPZKB); m_pryb.Create("",WS_CHILD |WS_VISIBLE|SS_ICON ,CRect(600,385,620,400),this,IDC_STATICPRYB); m_prsj.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(420,530,440,550),this,IDC_STATICPRSJ); m_prsb.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(420,600,440,610),this,IDC_STATICPRSB); m_prsrsj.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(600,600,620,610),this,IDC_STATICPRSB); m_ppsf.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(420,470,440,490),this,IDC_STATICPPSF); m_plrf.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(420,425,440,450),this,IDC_STATICPLRF); m_pbsf.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(600,470,620,490),this,IDC_STATICPBSF); m_pljf.Create("",WS_CHILD|WS_VISIBLE|SS_ICON ,CRect(600,425,620,440),this,IDC_STATICPLJF); m_pktsb.SetIcon(m_hIcon1[0]); m_plqb.SetIcon(m_hIcon1[0]); m_pljb.SetIcon(m_hIcon1[0]); m_pryb.SetIcon(m_hIcon1[0]); m_prsb.SetIcon(m_hIcon1[0]); m_plqfj.SetIcon(m_hIcon1[0]); m_pzkb.SetIcon(m_hIcon1[0]); m_ppsf.SetIcon( m_hIcon3[0]); m_plrf.SetIcon(m_hIcon3[0]); m_pbsf.SetIcon(m_hIcon3[0]); m_pljf.SetIcon(m_hIcon3[0]); m_prsj.SetIcon(m_hIcon2[0]); m_prsrsj.SetIcon(m_hIcon2[0]); for(i=0;i<16;i++) b_flag[i]=255; } void CModem3Dlg::OnUpdateAuto(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here if(m_kzfs==0) {pCmdUI->SetCheck(1); pCmdUI->Enable(FALSE); } } void CModem3Dlg::OnKtsbopen() { switch(m_kzfs) { case 1: send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x0e; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x3c; send_data[6]=0x10; break; } } void CModem3Dlg::OnKtsbclose() { } void CModem3Dlg::OnLqbdisuopen() { } void CModem3Dlg::OnLqbclose() { } void CModem3Dlg::OnLjbclose() { } void CModem3Dlg::OnLjbopen() { } void CModem3Dlg::OnLqfjclose() { } void CModem3Dlg::OnLqfjdisuopen() { } void CModem3Dlg::OnZkbclose() { } void CModem3Dlg::OnZkbopen() { } void CModem3Dlg::OnRybclose() { } void CModem3Dlg::OnRybopen() { } BEGIN_EVENTSINK_MAP(CModem3Dlg, CDialog) //{{AFX_EVENTSINK_MAP(CModem3Dlg) ON_EVENT(CModem3Dlg, IDC_MSCOMM2, 1 /* OnComm */, OnOnCommMscomm2, VTS_NONE) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CModem3Dlg::OnHelp() { // TODO: Add your command handler code here AfxMessageBox("a"); } void CModem3Dlg::OnShiwaiji2() { // TODO: Add your command handler code here shiwaiji_xuanze=2; CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_SHIWAIJI1,MF_UNCHECKED,ID_SHIWAIJI1,"1#室外机"); m_Menu->ModifyMenu(ID_SHIWAIJI2,MF_CHECKED,ID_SHIWAIJI2,"2#室外机"); } void CModem3Dlg::OnShiwaiji1() { // TODO: Add your command handler code here shiwaiji_xuanze=1; CMenu* m_Menu=this->GetMenu(); m_Menu->ModifyMenu(ID_SHIWAIJI1,MF_CHECKED,ID_SHIWAIJI1,"1#室外机"); m_Menu->ModifyMenu(ID_SHIWAIJI2,MF_UNCHECKED,ID_SHIWAIJI2,"2#室外机"); } void CModem3Dlg::OnShinei() { // TODO: Add your command handler code here CShineijiDialog dlg; dlg.DoModal(); } /******************************参数设置**************************/ //机型参数设置 void CModem3Dlg::OnJxcs() { // TODO: Add your command handler code here unsigned char i,flag; flag=2; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x02; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; for(i=0;i<200;i++) { if(immediate_data[3]==0x01&&immediate_data[4]==send_data[4]&&immediate_data[5]==0x02) flag=2; } if(flag==2) { CJxDialog dlg; dlg.DoModal(); } } //制冷参数设置 void CModem3Dlg::OnCool() { // TODO: Add your command handler code here long int i; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x03; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; time_over=0; int k; k=1; /* do{ if(time_over>4) {k=0; AfxMessageBox("通讯异常"); } }while(k); */ /* if(time_over>1) { CZhiLengDialog dlg; dlg.DoModal(); } */ } //制热参数设置 void CModem3Dlg::OnHot() { // TODO: Add your command handler code here unsigned char i,flag; flag=2; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x04; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; time_over=0; for(i=0;i<200;i++) { if(immediate_data[3]==0x01&&immediate_data[4]==send_data[4]&&immediate_data[5]==0x04) flag=2; } if(flag==2) { CZhiReDialog dlg; dlg.DoModal(); } } //时间参数设置 void CModem3Dlg::OnTiming() { // TODO: Add your command handler code here unsigned char i,flag; flag=2; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x06; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; for(i=0;i<200;i++) { if(immediate_data[3]==0x01&&immediate_data[4]==send_data[4]&&immediate_data[5]==0x06) flag=2; } if(flag==2) { CTimeDialog dlg; dlg.DoModal(); } } void CModem3Dlg::OnRongyebeng() { // TODO: Add your command handler code here CRongyebengDialog dlg; dlg.DoModal(); } void CModem3Dlg::OnLishikongtiao() { // TODO: Add your command handler code here CLishiDialog dlg; dlg.GetModem3Dlg(this); kong_re=1; dlg.DoModal(); } void CModem3Dlg::OnLishireshuei() { // TODO: Add your command handler code here CLishiDialog dlg; dlg.GetModem3Dlg(this); kong_re=2; dlg.DoModal(); } void CModem3Dlg::OnJiejing() { // TODO: Add your command handler code here unsigned char i,flag; flag=2; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x08; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; for(i=0;i<200;i++) { if(immediate_data[3]==0x01&&immediate_data[4]==send_data[4]&&immediate_data[5]==0x08) flag=2; } if(flag==2) { CJiebingDialog dlg; dlg.DoModal(); } } void CModem3Dlg::OnBuchang() { // TODO: Add your command handler code here CBuchangDialog dlg; dlg.DoModal(); } void CModem3Dlg::OnReshuei() { // TODO: Add your command handler code here unsigned char i,flag; flag=2; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x04; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x08; send_data[6]=0x00; for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0xfd; send_flag=1; for(i=0;i<200;i++) { if(immediate_data[3]==0x01&&immediate_data[4]==send_data[4]&&immediate_data[5]==0x14) flag=2; } if(flag==2) { CReshueiDialog dlg; dlg.DoModal(); } } void CModem3Dlg::OnNenghao() { // TODO: Add your command handler code here CNenghaoDialog dlg; dlg.DoModal(); } void CModem3Dlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); draw_flag=0;//很重要 ye1=0; ye2=0; // TODO: Add your message handler code here } //自动控制命令 void CModem3Dlg::OnKtkbut() { // TODO: Add your control notification handler code here unsigned char i; send_data[0]=0xf7; send_data[1]=0xf8; send_data[2]=0x07; send_data[3]=0x01; send_data[4]=shiwaiji_xuanze; send_data[5]=0x3E; send_data[6]=0x45; //自动设温取消,防动取消 for(i=0;i<6;i++) send_data[6]=send_data[6]+send_data[i]; send_data[7]=0x00; send_data[8]=0x00; send_data[9]=0x00; for(i=2;i<9;i++) send_data[9]=+send_data[i]; send_data[10]=0xfd; send_flag=1; } /****************************************************************/ CScrollBar* CModem3Dlg::GetScrollBarCtrl(int nBar) const { // TODO: Add your specialized code here and/or call the base class return CDialog::GetScrollBarCtrl(nBar); } int CModem3Dlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here if (!m_DialogBar.Create(this, IDD_DIALOG1, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,IDD_DIALOG1)) { TRACE0("Failed to create Dialog bar\n"); return -1; // fail to create } //m_DialogBar.EnableDocking(CBRS_ALIGN_TOP); //m_ToolBar.EnableDocking(CBRS_ALIGN_ANY); //EnableDocking(CBRS_ALIGN_ANY); //DockControlBar(&m_ToolBar); return 0; }